本文源码请见我的GitHub
1
2import numpy as np
import pandas as pd
3.2.1 Series对象
1 | #series对象是一个带索引数据构成的一维数组。 可以用一个数组创建Series对象 |
1 | data |
0 1
1 2
2 3
3 5
4 7
dtype: int64
1 | #可以通过values的index获取 |
RangeIndex(start=0, stop=5, step=1)
[1 2 3 5 7]
2
1 | data[1:3] |
1 2
2 3
dtype: int64
1. Series 是通用的 Numpy 数组
Pandas 的 Series 对象 使用一种显示定义的索引与数值关联
1 | data = pd.Series([0.25,3,0.45,0.75], index = ['a', 'b', 'c', 'd']) |
1 | data['b'] |
3.0
也可以使用不连续或者不按顺序的索引
1 | data = pd.Series([0.25,0.3, 0.5, 1.0], |
0.3
2.Series是特殊的字典
1 | population_dict = {'California' : 1548, |
California 1548
Texas 1131
New York 1922
Florida 1955
Illinois 1288
dtype: int64
字典创建Series对象时,索引默认按照顺序排列。但是典型的取值方式任然使用
1 | population['California'] |
1548
Series还支持数组形式的操作
1 | population['California':'Illinois'] |
California 1548
Texas 1131
New York 1922
Florida 1955
Illinois 1288
dtype: int64
3.创建Series对象
1.列表orNumpy数组
2.标量
3.字典
1 | pd.Series([2,3,4]) |
0 2
1 3
2 4
dtype: int64
1 | pd.Series(5, index=[100,200,300]) #创建时惠重复填充到每个索引中 |
100 5
200 5
300 5
dtype: int64
1 | pd.Series({2:'s',1:"a",3:'b'}) |
2 s
1 a
3 b
dtype: object
1 | a = pd.Series({2:'s',1:"a",3:'b'}, index=[3,2]) #会保留显式定义的键值对 |
3 b
2 s
dtype: object
3.2.2 Pandas的DataFrame对象
DataFrame可以看成一种灵活的行索引、又有列名的二维数组。
1 | area_dict = {'California' : 61548, |
California 61548
Texas 51131
New York 19422
Florida 31955
Illinois 21288
dtype: int64
1 | state = pd.DataFrame({'population' : population, 'area' : area }) |
1 | state |
population | area | |
---|---|---|
California | 1548 | 61548 |
Texas | 1131 | 51131 |
New York | 1922 | 19422 |
Florida | 1955 | 31955 |
Illinois | 1288 | 21288 |
左边的索引为index 上面的columns
1 | state.index |
Index(['California', 'Texas', 'New York', 'Florida', 'Illinois'], dtype='object')
1 | state.columns |
Index(['population', 'area'], dtype='object')
2.DataFrame是特殊的字典
1 | print(state['area']) |
California 61548
Texas 51131
New York 19422
Florida 31955
Illinois 21288
Name: area, dtype: int64
'映射到一个Series'
data[0]返回第一行 data[‘列名’]返回某一列·
3.创建DataFrame
1 | '''单个Series''' |
population | |
---|---|
California | 1548 |
Texas | 1131 |
New York | 1922 |
Florida | 1955 |
Illinois | 1288 |
1 | #t通过字典列表 |
a | b | |
---|---|---|
0 | 0 | 0 |
1 | 1 | 2 |
2 | 2 | 4 |
1 | #3.Series对象字典 |
population | area | |
---|---|---|
California | 1548 | 61548 |
Texas | 1131 | 51131 |
New York | 1922 | 19422 |
Florida | 1955 | 31955 |
Illinois | 1288 | 21288 |
1 | #4.Numpy 二维数组 |
fll | bar | |
---|---|---|
a | 0.672980 | 0.830471 |
b | 0.446971 | 0.244948 |
c | 0.352801 | 0.680514 |
1 | #5.numpy结构化数组 |
3.2.3 Pandas的Index对象 (不可变!!
1 | ind = pd.Index([2,3,5,7,9]) |
Int64Index([2, 3, 5, 7, 9], dtype='int64')
1 | print('index 是可以自己创建的!但是不可变!!') |
index 是可以自己创建的!但是不可变!!
1 | #2.INdex是有序集合 |
Int64Index([3, 5], dtype='int64')
1 | indA | indB #并集 |
Int64Index([1, 2, 3, 5, 7, 9], dtype='int64')
1 | indA ^ indB #已获 |
Int64Index([1, 2, 7, 9], dtype='int64')